#ifndef _CTYPE_H_
#define _CTYPE_H_

#define MAX_INT32           0x7FFFFFFF
#define MAX_UINT32          0xFFFFFFFF

#define MAX_INT16           0x7FFF
#define MAX_UINT16          0xFFFF

/* basic define */

typedef unsigned char       uint8_t;
typedef char                int8_t;
typedef unsigned short      uint16_t;
typedef short               int16_t;
typedef unsigned long       uint32_t;
typedef long                int32_t;
typedef unsigned long long  uint64_t;
typedef long long           int64_t;

typedef unsigned char       u8;
typedef unsigned short      u16;
typedef unsigned long       u32;
typedef unsigned long long  u64;

typedef char                s8;
typedef short               s16;
typedef long                s32;
typedef long long           s64;

typedef unsigned int        size_t;
typedef int                 ssize_t;

typedef enum {
    FALSE = 0,
    TRUE = 1
} _Bool ;

typedef struct {
    int x;
    int y;
} point;

#define _PACK_              __attribute__((packed))
#define _PACK_ALIGN(n)      __attribute__((packed, aligned(n)))

#define NULL                ((void *)0)

#endif _CTYPE_H_ /* end of _CTYPE_H_ */
